home *** CD-ROM | disk | FTP | other *** search
/ Floppyshop 2 / Floppyshop - 2.zip / Floppyshop - 2.iso / art&graf.ix / art-0015 / flicker / multiops.asm < prev    next >
Assembly Source File  |  1997-04-16  |  1KB  |  73 lines

  1.  
  2.  
  3.     ;    xbytes(bytes, xlator, count)
  4.     ;        run bytes through xlator table
  5.     public _xbytes
  6. _xbytes
  7.     move.l    4(sp),a0
  8.     move.l    8(sp),a1
  9.     move.w    12(sp),d0
  10.     bra    xllpz
  11. xllp    move.w #0,d1
  12.     move.b    (a0),d1
  13.     move.b    0(a1,d1.w),(a0)+
  14. xllpz    dbra d0,xllp
  15.     rts
  16.  
  17.  
  18.  
  19.     ;    word_zero(pt, count)
  20.     ;        zero out count # of words starting at pt
  21.     public _word_zero
  22. _word_zero
  23.     move.l    4(sp),a0
  24.     move.w    8(sp),d0
  25.     move.w    #0,d1
  26.     bra wzz
  27. wzlp    move.w    d1,(a0)+
  28. wzz        dbra    d0,wzlp
  29.     rts
  30.  
  31.  
  32.  
  33.     ;    copy_words(s, d, count)
  34.     ;        copy count # of words from s to d
  35.     public _copy_words
  36. _copy_words
  37.     move.l    4(sp),a0
  38.     move.l    8(sp),a1
  39.     move.w    12(sp),d0
  40.     bra    cpwz
  41. cpw_lp    move.w    (a0)+,(a1)+
  42. cpwz    dbra    d0,cpw_lp
  43.     rts
  44.  
  45.  
  46.  
  47.  
  48.  
  49.     ; copy_pointers(s, d, count)
  50.     ;    copy count # of pointer (long) values from s to d
  51.     ;    do it either forwards or backwards so don't overwrite self
  52.     ;    if coming from same buffer
  53.     public _copy_pointers
  54. _copy_pointers
  55.     move.l    4(sp),a0
  56.     move.l    8(sp),a1
  57.     move.w    12(sp),d0
  58.     cmp.l    a0,a1
  59.     ble    cpt_forz
  60.     move.l    #0,d1    ; it's backwards so move pointers to end of buffer
  61.     move.w    d0,d1    ; do the arithmetic as longs cause the shift might
  62.     lsl.l    #2,d1    ; take count out of 16 bits.
  63.     add.l    d1,a0
  64.     add.l    d1,a1
  65.     bra cpt_revz
  66. cpt_rlp    move.l    -(a0),-(a1)
  67. cpt_revz dbra    d0,cpt_rlp
  68.     rts
  69. cpt_flp    move.l    (a0)+,(a1)+
  70. cpt_forz dbra    d0,cpt_flp
  71.     rts
  72.  
  73.